﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Modelo;
using AccesoDatos;

namespace Negocio
{
    public static class ControladorMenuDiario
    {
        public static void EliminarComidaPlanificada(DateTime fecha, string tipo, string nombre)
        {
            if (fecha != null && tipo != null)
            {
                BDComida.eliminarComidaPlanificada(fecha, tipo, nombre);
            }
           
        }
        public static Comida GetComida(DateTime Fecha, string Tipo)
        {
            if (Fecha != null || Tipo != null)
            {
                return BDMenuDiario.GetComidas(Fecha, Tipo);
            }
            return null;
        }
        public static List<Receta> GetRecetas()
        {
            return BDReceta.GetRecetas();
        }
        public static void AnadirComida(DateTime fecha, string tipo, string nombre, int adultos, int ninios)
        {
            BDMenuDiario.AnadirComidaMenuDiario(fecha, tipo, nombre, adultos, ninios);
            int idComida = BDComida.UltimoIdComida();
            int id = BDMenuDiario.VerificarMenuDiario(fecha, tipo);
            if (id == -1)
                BDMenuDiario.InsertarMenuDiario(fecha, idComida);
            else
            {
                BDMenuDiario.ActualizarMenuDiario(id, idComida);
            }
            BDReceta.SetCantidadUsadas(nombre, 1);

        }
        public static List<Comida> GetComidaHastaDomingo(DateTime Fecha)
        {
            List<Comida> comidas = new List<Comida>();
            
            DateTime fechaID = new DateTime();
            int count = 1;
            fechaID = Fecha;
            do{
                Comida comidaDelDia = BDMenuDiario.GetComidas(fechaID, "d");
                if(comidaDelDia!=null)
                    comidas.Add(comidaDelDia);

                comidaDelDia = BDMenuDiario.GetComidas(fechaID, "a");
                if(comidaDelDia!=null)
                    comidas.Add(comidaDelDia);

                comidaDelDia = BDMenuDiario.GetComidas(fechaID, "c");
                if(comidaDelDia!=null)
                    comidas.Add(comidaDelDia);

                fechaID = fechaID.AddDays(count);
            }
            while (ControladorFecha.dayOfWeekLarge(fechaID) != "domingo");
            return comidas;
        }


        public static Comida nuevaComida(DateTime Fecha, string Tipo, Receta receta, int adultos, int ninios)
        {
            Comida c = new Comida();
            c.CantidadAdultos = adultos;
            c.CantidadNiños = ninios;
            c.fecha = Fecha;
            c.recetas = receta;
            c.Tipo = Tipo;
            return c;
        }

        public static bool Validar(int adultos, int ninios)
        {
            return (adultos > -1 && ninios > -1) && (adultos+ninios>0);
        }
    }
}
